Skip to content

Conversation

@ingydotnet
Copy link
Contributor

@ingydotnet ingydotnet commented Jul 27, 2025

See: https://github.com/makeplus/makes

With this setup, one not need to have Go or Clojure installed.
The Makefile takes care of everything.
You can easily override Go and Clojure versions with GO-VERSION and
CLOJURE-VERSION make variables:

make test GO-VERSION=1.23.4

Makefile autoinstalls the makes repo, Go and Clojure deps under
.cache/.

Adds support for:

  • make shell - Start subshell with local go in PATH
  • make build - Build glj
  • make clean - Remove build artifacts
  • make distclean - Clean and remove .cache dir

Inside shell after make build, glj will be in PATH.

We lock the makeplus/makes repo to commit
ca8c2c25e66cf6bfcf8c993502de5b98da5beaf5 to be make sure everyone gets
the same results forever.

Updates Makefile variables to use - instead of _.
Variables with _ can come from the environment.
With - they are only recognized by make.
You can override in the shell with make something FOO-BAR=123.

.PHONY is only needed when phony targets have matching file system
names. test is the only one here.

@ingydotnet ingydotnet requested a review from jfhamlin as a code owner July 27, 2025 00:12
@ingydotnet ingydotnet force-pushed the makefile branch 2 times, most recently from 9273c7c to 0234615 Compare August 7, 2025 18:05
@ingydotnet ingydotnet changed the title Makefile refactor to use Makes resuable parts Makefile refactor to use the Makes makefile system Aug 7, 2025
@ingydotnet ingydotnet force-pushed the makefile branch 2 times, most recently from 1aa31ac to b1c1c81 Compare August 14, 2025 19:49
ingydotnet added a commit to ingydotnet/glojure that referenced this pull request Aug 15, 2025
To avoid adding things that are often lying around...

The .clj and .glj are to ignore top level scripts for testing stuff.

The GNUmakefile and .cache are for alternate Makefile stuff like I do in
glojurelang#75

If that doesn't get merged I can just symlink to it since GNUmakefile
has precedence over Makefile (for GNU make).
See: https://github.com/makeplus/makes

With this setup, one not need to have Go or Clojure installed.
The Makefile takes care of everything.
You can easily override Go and Clojure versions with `GO-VERSION` and
`CLOJURE-VERSION` make variables:

    make test GO-VERSION=1.23.4

Makefile autoinstalls the `makes` repo, Go and Clojure deps under
`.cache/`.

Adds support for:
* make shell - Start subshell with local go in PATH
* make build - Build glj
* make clean - Remove build artifacts
* make distclean - Clean and remove .cache dir

Inside shell after `make build`, `glj` will be in PATH.

We lock the makeplus/makes repo to commit
ca8c2c25e66cf6bfcf8c993502de5b98da5beaf5 to be make sure everyone gets
the same results forever.

Updates Makefile variables to use `-` instead of `_`.
Variables with `_` can come from the environment.
With `-` they are only recognized by make.
You can override in the shell with `make something FOO-BAR=123`.

`.PHONY` is only needed when phony targets have matching file system
names. `test` is the only one here.
@ingydotnet
Copy link
Contributor Author

Replaced by #119

@ingydotnet ingydotnet closed this Sep 23, 2025
@ingydotnet ingydotnet deleted the makefile branch September 24, 2025 01:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant